B站视频CID & 弹幕文件获取

您所在的位置:网站首页 bilibili 标签 B站视频CID & 弹幕文件获取

B站视频CID & 弹幕文件获取

2023-11-17 18:38| 来源: 网络整理| 查看: 265

在某些特殊的时刻,我们有时可能会需要获取CID以及弹幕文件,这一个时候我们可以使用B站自带的API或者浏览器的控制台进行获取他们。(注意以下方法属于个人研究,不是 B 站官方提供的正式服务,随时可能会失效)(由于B站更新了API,本次更新较多,前面的方法大部分都已经失效)

1、控制台获取CID [当前仍可以使用]

以这一个视频为例,我们在电脑浏览器上按F12(开发者模式,Safari为Option+Command+I),进入控制台,直接输入cid后按回车,返回的值即为当前所在p的CID。

举例:

· 2021年2月21日更新:

由于现在B站已经将cid直接嵌入至网页HTML中,如果需要获得对应的所有p的cid,可以直接在控制台中输入:

返回的JSON值中就包含了所有p的cid(示例可能会较长,如果要参考,可以到页面底部查看)

2、B站API获取CID(新API)[当前仍可以使用]

以这一个视频(BV1kK4y1Y7Zq)为例,我们在电脑浏览器上按F12(开发者模式,Safari为Option+Command+I),进入“网络”选项卡,可以找到右侧的这样的一串数据,中间就存在了CID值。

我们在这里的“标头”部分,不难发现,这里有一个链接:https://api.bilibili.com/x/player/pagelist?bvid=BV1kK4y1Y7Zq&jsonp=jsonp

返回数据示例:

这里的数据,是按照p的顺序进行排列的。举个例子,如果我们要获取第一个p的CID号,只需要找到第一个CID值就可以了。第二个p就是第二个CID值,以此类推。(注意在输入时,需要替换BV号为对应视频的BV号)

3、B站API获取CID(旧API)[当前已经无法使用]

这一个方式略繁琐一些,建议优先选择前两者方式,这一个方式B站目前也是能够支持的。

思路:API转换,将视频BV号转换为AV号,再用另外一个API,将视频AV号转换为CID。

以这一个视频(BV1Jt411B7M5)为例,我们将BV号填入

的最后。例如这一个视频就是

返回数据示例:

在返回的数据中,我们可以获取到这一个视频的aid(AV号),以上面的视频为例,aid值为39596505。

接下来,我们将我们获得的aid,填入

的最后。例如这一个视频就是

返回数据示例(当前已经无法复现):

此处获取对应p的方式同第二种,在这里就不赘述了。

弹幕XML文件获取(当前弹幕池)(新方法)[当前可用]

前置条件:通过上述方式获取CID

注意:此方式可能会出现部分无法解析的数据,如果要获得时间等信息,可以参考旧方法

以这一个视频(BV1kK4y1Y7Zq)为例,前面我们已经获得了它的第一p的CID是227684649,我们只需将以下链接

中的{cid}替换成CID即可。例如获取这一个视频的第一p的弹幕XML文件,就是

至此,你就可以获得视频对应的弹幕文件了。

使用文本编辑器(例如Visual Studio Code)打开,选择UTF-8的编码格式,就可以看到里面的弹幕内容了。

弹幕XML文件获取(当前弹幕池)(旧方法)[当前已经失效]

前置条件:通过上述方式获取CID

以这一个视频(BV1kK4y1Y7Zq)为例,前面我们已经获得了它的第一p的CID是227684649,我们只需将以下链接

中的{}替换成CID即可。例如获取这一个视频的第一p的弹幕XML文件,就是

至此,你就可以获得视频对应的弹幕XML文件了。

弹幕文件获取(历史弹幕)(新方法)[当前可用]

前置条件:通过上述方式获取CID,已经登录B站

注意:此方式可能会出现部分无法解析的数据(例如时间、颜色等)

以这一个视频(BV1Js411o76u)为例,我们通过上面的方式,已经获得了它的第一p的CID是1176840,我们需要将以下链接

中的{cid}替换为CID,{date}替换为对应的时间,例如,我想要查询2013年10月26日的弹幕,可以访问

这里返回的就是那一天的历史文件了(如果短时间内查询过多,可能会触发风控412报错,建议延长间隔时间,风控后可能需要等待一段时间后才可以进行再次获取)。通过这些历史弹幕的组合,你就可以获得全弹幕了~

弹幕XML文件获取(历史弹幕)[当前已经失效]

前置条件:通过上述方式获取CID,已经登录B站

以这一个视频(BV1Js411o76u)为例,我们通过上面的方式,已经获得了它的第一p的CID是1176840,我们只需将以下链接

https://api.bilibili.com/x/v2/dm/history?type=1&oid={cid}&date={date}

中的{cid}替换为CID,{date}替换为对应的时间,例如,我想要查询2013年10月26日的弹幕,可以访问

https://api.bilibili.com/x/v2/dm/history?type=1&oid=1176840&date=2013-10-26

这里返回的就是那一天的历史文件了(如果短时间内查询过多,可能会触发风控412报错,建议延长间隔时间,风控后可能需要等待一段时间后才可以进行再次获取)。通过这些历史弹幕的组合,你就可以获得全弹幕了~

对于视频的CID获取的python程序,目前已在https://github.com/g497813927/Bilibili_BV_Converter发布,欢迎下载使用~

附录:

控制台获取CID示例(JSON部分):



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3